import { createVuePlugin } from 'vite-plugin-vue2'
import * as path from 'path'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import viteCompression from 'vite-plugin-compression' //gizp压缩
export default {
	server: {
		// cors防止加载字体失败
		//  No 'Access-Control-Allow-Origin' header is present on the requested resource.bBigerOver.ttf:1 Failed to load resource: net::ERR_FAILED 原因：跨域，解决：配置cors
		// cors: true, // 默认启用并允许任何源，如果设置了具体的源，那么其它源将会一律403 Forbidden。
		//
		cors: true,
		host: '0.0.0.0',
		proxy: {
			'/static': {
				target: 'https://static.horwincloud.com',
				changeOrigin: true,
				rewrite: path => path.replace(/^\/static/, ''),
			},
		},
	},
	build: {
		minify: 'terser',
		terserOptions: {
			compress: {
				drop_console: true,
				drop_debugger: true,
			},
		},
		commonjsOptions: {
			transformMixedEsModules: true, // 允许混合的es模块
		},
	},
	transpileDependencies: false,
	// 因为vite不支持process.env.NODE_ENV，所以需要配置
	define: {
		'process.env': {},
	},
	plugins: [
		createVuePlugin(),
		createSvgIconsPlugin({
			// 配置路劲在src/icons/svg下面
			iconDirs: [path.resolve(process.cwd(), 'src/assets/svg')],
			// 指定symbolId格式 :
			symbolId: 'icon-[name]', //实例：#icon-user
		}),
		viteCompression({}),
	],
	resolve: {
		alias: {
			'@': path.resolve(__dirname, 'src'),
			'@images': path.resolve(__dirname, 'src/assets/images'),
		},
	},
	css: {
		preprocessorOptions: {
			less: {
				/**
				 * 所有预处理器选项还支持 additionalData 选项，可以用于为每个样式内容注入额外代码。
				 * 请注意，如果注入的是实际的样式而不仅仅是变量时，那么这些样式将会在最终的打包产物中重复出现。
				 */
				additionalData:
					'@import "@/assets/styles/global.less";' +
					'@import "@/assets/styles/index.less";',
			},
		},
	},
}
